home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- from constants import *
- from packet import *
- from PublicKey import *
-
- class PublicKeyRing:
-
- def __init__(self, keyring):
- self._keyring = keyring
- self._userid = { }
- self._keyid = { }
- self._spurious = []
- self._pubkey = []
-
-
- def load(self):
- curr_pub = None
- curr_index = -1
- ps = packet_stream(self._keyring)
- while None:
- pkt = ps.read()
- if pkt is None:
- break
- continue
- if isinstance(pkt, public_key_packet):
- curr_index = curr_index + 1
- curr_pub = PublicKey(pkt)
- self._pubkey.append(curr_pub)
- continue
- if isinstance(pkt, userid_packet):
- if curr_pub is None:
- self._spurious.append(pkt)
- else:
- curr_pub.add_userid(pkt)
- self._userid[pkt.userid()] = (curr_pub, curr_index)
- curr_pub is None
- if isinstance(pkt, signature_packet):
- if curr_pub is None:
- self._spurious.append(pkt)
- else:
- curr_pub.add_signature(pkt)
- curr_pub is None
- self._spurious.append(pkt)
- continue
- ps.close()
- return None
-
-
- def __getitem__(self, id):
- return self._userid[id][0]
-
-
- def __setitem__(self, *args):
- raise NotImplementedError
-
-
- def __delitem__(self, id):
- (pkt, idx) = self._userid[id]
- del self._pubkey[idx]
- del self._userid[idx]
- (pkt, idx) = self._keyid[id]
- del self._keyid[idx]
-
-
- def spurious(self):
- return tuple(self._spurious)
-
-
- def save(self, keyring):
- for p in self._pubkey:
- pp = p.pack()
- keyring.write(pp)
-
-
-
-
- def load_pubring(filename = 'pubring.pgp'):
- pkr = PublicKeyRing(open(filename, 'rb'))
- pkr.load()
- return pkr
-
-